package com.xinxin.everyxday.base.loopj.requestinstance;
import android.content.Context;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.loopj.android.http.RequestParams;
import com.xinxin.everyxday.bean.base.CommonResponseBody;
import java.util.ArrayList;
import java.util.List;
/**
* 用于非列表型接口返回列表型数据的请求和解析
* @param <T>
*/
public class CommonRequestWrapWithType<T> extends CommonRequestWrap<T> {
public CommonRequestWrapWithType(Context cxt, String requestType,
RequestParams requestParams, boolean isNeedSigned,
CommonRequestWrapDelegate<T> commonRequestWrapDelegate, Class<T> beanType) {
super(cxt, requestType, requestParams, isNeedSigned,
commonRequestWrapDelegate, beanType);
}
public CommonRequestWrapWithType(Context cxt, String requestType,
RequestParams requestParams, boolean isNeedSigned, int stringId,
CommonRequestWrapDelegate<T> commonRequestWrapDelegate, Class<T> beanType) {
super(cxt, requestType, requestParams, isNeedSigned, stringId,
commonRequestWrapDelegate, beanType);
}
@Override
public void setResponseObject(CommonResponseBody<T> responseBody,
String str, Gson gson) {
try {
JsonParser parser = new JsonParser();
JsonArray array = parser.parse(str).getAsJsonArray();
List<T> lst = new ArrayList<T>();
for (final JsonElement json : array) {
T entity = gson.fromJson(json, getBeanType());
lst.add(entity);
}
responseBody.setList(lst);
} catch (Exception e) {
}
}
}